
import { request } from '../../request/http.js';
import regeneratorRuntime from '../../lib/runtime/runtime.js';

//异步getGoodsList请求数据    每一次到本页面获取id和querry查询信息   然后/goodsSearch获取一次数据
//handleTabsItemChange   出来tabs
//onReachBottom  触底有数据更新页码，没有显示没有数据
//onPullDownRefresh  下拉获取数据 重置商品列表数据，页面变1，再次获取数据getGoodsList

Page({

  data: {
    tabs: [
      { id: 0, value: '综合', isActive: true },
      { id: 1, value: '销量', isActive: false },
      { id: 2, value: '价格', isActive: false }
    ],
    // 商品列表数据数组
    goodsList: [],
    // 无图片时显示的默认图片
    defaultImage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2909993137,2192173221&fm=26&gp=0.jpg'
  },
  // 全局接口要的参数
  QueryParams: {  cat_one_id: '',cat_two_id:'', pagenum: 1, pagesize: 10 },
  // 全局商品列表总条数
  total: 0,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.QueryParams.cat_one_id = options.cat_one_id || '';
    this.QueryParams.cat_two_id = options.cat_two_id || '';
    console.log(options);
    // console.log(this.QueryParams.cid);
    // this.QueryParams.query = options.query || '';
    this.getGoodsList();
  },
  // 异步获取商品列表数据 请求goodsSearch同时发送参数
  // 获取后台total总条数   后台goods商品    goodsList最后将本数据里的goodsList和获取到的一起赋值给goodsList（拼接）
  // 设置一个下拉刷新   在json里开启下拉刷新
  async getGoodsList() {
    const result = await request({ name: 'goodsSearch', data: this.QueryParams });
    let { total } = result.data.message;
    console.log(total);//total后台传来的
    this.total = total;
    let { goods } = result.data.message;
    // console.log(goods);
    this.setData({
      /* 旧数据与新数据拼接*/
      goodsList: [...this.data.goodsList, ...goods]
    })
    // 关闭下拉涮新的窗口       具体需要的设置还是需要去onPullDownRefresh设置需要下拉做什么操作
    wx.stopPullDownRefresh();
  },
  // 标题点击事件, 从子组件转递过来   tab的点击
  handleTabsItemChange(e) {
    const { index } = e.detail;
    let { tabs } = this.data;
    tabs.forEach((v, i) => index == i ? v.isActive = true : v.isActive = false)
    this.setData({ tabs })
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  //触底就控制页面增长 以及提示页面没有数据信息
  onReachBottom: function () {
    // 判断还有没有下一页
    if (this.QueryParams.pagenum + this.QueryParams.pagesize > this.total){
      // 没有下一页
      wx.showToast({ title: '没有数据了', icon: 'none', duration: 1000 })
    } else {
      // 有下一页
      this.QueryParams.pagenum = this.QueryParams.pagenum + this.QueryParams.pagesize;
      this.getGoodsList()
    }
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  //下拉重新获取数据：goodsList重置，页面变1，再次获取数据getGoodsList
  onPullDownRefresh: function () {
    // 重置数组
    this.setData({ goodsList: [] })
    // 重置页码
    this.QueryParams.pagenum = 1;
    this.getGoodsList();
  },
})